home *** CD-ROM | disk | FTP | other *** search
- C This Fortran program should be run on the mainframe in conjunction
- C with a Basic program (MSPCBOOT.BAS) on the PC to transfer
- C MSKERMIT.BOO to the PC and translate it into KERMIT.EXE. This
- C program uses a very rudimentary technique to try to insure that
- C the characters it sends arrive correctly. It just sends a count
- C of the number of characters sent after each line. In this way any
- C errors of character loss or insertion will be caught. If a
- C character is just corrupted it will not be caught. Hopefully if
- C this happens it will be in a non-critical part of the KERMIT.EXE
- C file. The reason a simple checksum was not used was so that this
- C program could run on machines using either EBCDIC or ASCII
- C characters. This program should take about thirty minutes to run.
- C
- C This program assumes that the standard input and standard output units
- C are directed to the terminal. The program prompts for the name of a
- C file to transfer (e.g. MSKERMIT.BOO) and opens unit 7 with than name.
- C
- C Modified by:
- C Tom Putnam, Purdue University Computing Center, Dec. 1985.
- C (changed to FORTRAN 77, prompt for file name, cleanup)
- C
- C Original by:
- C Bill Catchings, Columbia University Center for Computing Activities
- C June 1984 (Revised September 1984)
- C
- CHARACTER*1 LINE(77), ACK, OK, SPACE, COMMA
- CHARACTER*30 FNAME
-
- PRINT *, 'Enter the full name of the .BOO file to transfer'
- READ (*,5) FNAME
- 5 FORMAT(A30)
- OPEN(UNIT=7,FILE=FNAME,STATUS='OLD',ERR=99)
-
- PRINT *,'Ready to transfer data, now run MSPCBOOT.BAS on the PC.'
-
- C Get characters for constants (character constants are rough in
- C some FORTRANs).
- READ (*,10) OK, SPACE, COMMA, ACK
- 10 FORMAT(4A1)
-
- C Get new line from file.
- 20 READ (7,30,END=80)LINE
- 30 FORMAT(77A1)
-
- C Count the characters as some rudimentary check for noise.
- I = 1
- 40 IF (LINE(I) .EQ. SPACE) GO TO 50
- I = I + 1
- GO TO 40
-
- C Put in a comma followed by the count.
- 50 LINE(I) = COMMA
-
- C Write to TTY.
- 60 WRITE (*,70)LINE,I-1
- 70 FORMAT(77A1,I2)
-
- C Get terminal handshake.
- READ (*,10)ACK
-
- C Did the other side like it? (Did they send OK?)
- IF (ACK .NE. OK) GO TO 60
- GOTO 20
-
- C Send good-bye message.
- 80 WRITE (*,90)
- 90 FORMAT(10('&'),',10')
- STOP
-
- C Here if error opening file
- 99 PRINT *,'Error - cannot open file = ',FNAME
- STOP
- END
-